package com.hpeu_12.day1228;

/**
 * 第一题、创建Account类的一个子类CheckAccount代表可透支账户，该账户中定义一个属性：overdraft
 * 代表可透支限额。在CheckAccount类中重写withdraw方法，其算法如下：如果（取款金额<账户余额），
 * 可直接取款；如果（取款金额>账户余额），计算需要透支的额度，判断透支额overdraft是否足够支付本次透支需要，
 * 如果可以，将账户余额修改为0，重减可透支金额，如果不可以，提示用户超过可透支额的限额
 * 要求：写一个用户程序CheckAccount类，在用户程序中，创建一个账户为1122，余额为20000，
 * 年利率为4.5%，可透支限额为5000的CheckAccount对象
 * 使用withdraw方法取款5000，并打印账户余额和可透支额
 * 使用withdraw方法取款18000，并打印账户余额和可透支额
 * 使用withdraw方法取款3000，并打印账户余额和可透支额
 */
public class CheckAccount extends Account{
    private double overdraft;//可透支金额

    public void withdraw(double x){
        if (balance>=x){
            balance -=x;
            System.out.println("账户为1122，账号余额为"+balance);
            System.out.println("账户为1122，可透支额为"+overdraft);
        }else if(overdraft>=x-balance){
            overdraft = overdraft-(x-balance);
            balance=0;
            System.out.println("账户为1122，账号余额为"+balance);
            System.out.println("账户为1122，可透支额为"+overdraft);
        }else
            System.out.println("对不起超过可透支的限额！");
    }

    public static void main(String[] args) {
        CheckAccount checkAccount =new CheckAccount();
        checkAccount.overdraft=5000;
        checkAccount.balance=20000;
        System.out.println("取款:5000");
        checkAccount.withdraw(5000);
        System.out.println("取款:18000");
        checkAccount.withdraw(18000);
        System.out.println("取款:3000");
        checkAccount.withdraw(3000);
    }
}
